查看原文
其他

Python 3.11 ,即将变得更快!

快学Python 2023-05-04

人生苦短,快学Python!

作为一门异常受欢迎的编程语言,Python的优点有很多,比如:易于学习、用途广泛、有成千上万个用于数据科学的有用的库。但同时,Python一直被诟病的就是它运行速度太慢。

在去年的PyCon US 2021大会上,Python之父Guido van Rossum曾表示:要在2022年的Python 3.11中,将Python速度提高2倍,4年内,速度提升5倍,以解决Python与C++等其他编程语言相比在速度上的关键缺点。

如今,速度太慢的情况在Python 3.11中即将改变。在今年晚些时候发布稳定版之前,目前正处于其预览版(版本3.11.0b1)的第一个测试阶段。

CPython 3.11已比3.10提速1.25倍

在近期的PyCon US 2022会议上,Core Python(CPython)开发者Mark Shannon分享了关于加速Python项目的细节,此外,开发者还展示了在浏览器中运行Python代码这一目标的进展。

去年,微软资助了Python软件基金会(PSF)的一个项目——“Shannon Plan”,该项目由Python创造者Guido van Rossum和Mark Shannon领导,承诺在今年的Python 3.11中将其速度提高2倍。其愿景是促使Python向C语言的性能发展。

微软在2020年聘请了van Rossum,并让他自由选择任何项目。在去年的PyCon US 2021会议上,他称自己 "选择回到我的根源",并将致力于解决Python著名的性能不足问题

性能也许并不是Python的首要任务,因为机器学习和数据科学的采用得益于TensorFlow、NumPy、Pandas以及更多的平台,如AWS的Boto3 SDK for Python。这些平台每月被下载数千万次,并在通常不受硬件限制的环境中使用。

Faster CPython项目(GitHub地址:https://github.com/faster-cpython/ideas/blob/main/main-vs-310.rst)提供了一些关于CPython 3.11在过去一年的性能更新。在PyCon US 2022会议之前,该项目公布了更多的结果:在几十个性能指标上对3.11测试预览版和3.10进行了比较,显示3.11.0b1总体上比3.10快1.25倍

新的字节码解释器使错误处理更高效

Shannon对该项目提高Python性能的能力持现实态度,但他相信这些改进可以将Python的可行用途扩展到更多的虚拟机。他去年在Python增强提案(PEP)659中写道:“Python被广泛认为是缓慢的。

虽然Python永远达不到C、Fortran甚至Java等低级语言的性能,但我们希望它能与脚本语言的快速实现相媲美,如Javascript的V8或Lua的LuaJIT。具体来说,我们希望通过CPython实现这些性能目标,使所有Python用户受益,包括那些无法使用PyPy或其他替代性虚拟机的用户。”

在PEP 659中详述的关键方法是:“专门化的、自适应的解释器,但它在一个非常小的区域内积极地专门化代码,并能够迅速和低成本地适应错误的专门化。

如上所述,虚拟机的优化是 "昂贵的",往往需要很长的 "预热 "时间。为了避免这种时间开销,虚拟机应该推测“即使在一个函数执行几次后,专门化也是合理的”。所以,解释器需要持续地且非常低廉地进行优化和去优化。

这应该会产生一个更快的CPython解释器,它可以在程序执行过程中跟踪单个字节码。据Python软件基金会(PSF)称,新解释器的工作几乎已经完成,但仍需要完成循环和二进制操作的动态专门化。

此外,3.11的内存消耗与3.10相比没有变化。

CPython JIT编译器即将实现

关于Python性能的即时(JIT)编译器问题,根据Python软件基金会(PSF)对该事件的报道,Shannon认为这不是一个优先事项,可能最早也要到Python 3.13才能实现。

此外,用于数据科学的Anaconda Python发行版的制造商Anaconda,正在支持Pyston项目,该项目是Python的一个实现,承诺比Python有速度上的提高。

Anaconda在加速Python方面较早的努力之一是Numba项目,这是一个基于LLVM的CPython JIT编译器,它可以加速在CPU或GPU上运行的Python数值函数,但不能优化整个程序,也不能解决更广泛的Python用例。另一个是PyPy,它是CPython的一个实现,带有JIT编译器以获得更快的性能。

根据Faster CPython项目的实施计划(GitHub地址:https://github.com/markshannon/faster-cpython/blob/master/plan.md),CPython 3.12可能会获得一个 "用于小区域的简单JIT编译器",在运行时使用相对简单、快速的编译器编译小区域的专门代码;而CPython 3.13将扩展编译区域,增强编译器以生成卓越的机器代码

最后,对于以上Faster CPython项目加速Python的做法,你有什么看法?欢迎在评论区留言

来源:CSDN   参考链接:

https://www.zdnet.com/article/programming-languages-python-is-slow-but-its-about-to-get-faster/

Python真正的魅力在于他的生态,在学习过程中无时无刻要提醒自己:用现成的。这种开发思路会极大提高效率。

但在过程中会发现,市面上的Python图书或者Python课程也不少,通常有如下几个问题:

l  Python语法讲解不完整,没有建立扎实的Python语法观念;

l  用C、C++、Java观念撰写实例;

l  对Python语法的精神与内涵未做说明;

l  对Python进阶语法未做解说;

l  基础实例太少,没经验的读者无法举一反三;

l  模块介绍不足,应用范围有限。 

最近我看了一本新书《Python王者归来(增强版)》一书完全解决了以上问题,从Python风格说起,抛弃C、C++、Java思维,全面剖析Python语法、内涵与精神功能,融入顶尖Python程序员的逻辑与设计风格。

除了讲解Python语法的基础知识与进阶知识,本书还将知识扩充至下列应用范围:人工智能基础;bytes 数据、编码、译码;嵌套、closure、lambda、decorator 等高阶应用;设计加密与解密程序;图像处理、文字识别、计算机存储图像的方法;建立有个人风格的 QRcode 与名片;GUI 设计计算器动画、音乐与游戏实践;matplotlib 中英文图表绘制;轻量级的数据库 SQLite 实践;多任务与多线程设计;用海龟绘图设计万花筒与满天星星;设计机场出入境人脸识别系统用网络程序 Server 端与Client 端设计聊天室。

真正的一书解千愁~~~~

人生苦短,快学Python!最后,我也会给关注Python的同学来波福利,之前都是搞留言/点赞抽奖,最近发现朋友圈直接点赞抽奖也不错,对于大家更简单。还没有我好友的读者朋友,可以扫码加一下。

▲扫码添加好友,朋友圈送书

我会在朋友圈发起送出新书《Python王者归来(增强版)》的抽奖活动,平时有其他动态也会第一时间在朋友圈通知。

推荐阅读



    点击这里,阅读更多Python文章!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存